package com.yiyuwanglu.basecore.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimesUtil {
	
	

	/**
	 * 获得当天0点时间
	 * @return
	 */
	public static Date getTimesmorning() {
	Calendar cal = Calendar.getInstance();
	cal.set(Calendar.HOUR_OF_DAY, 0);
	cal.set(Calendar.SECOND, 0);
	cal.set(Calendar.MINUTE, 0);
	cal.set(Calendar.MILLISECOND, 0);
	return cal.getTime();
	}


	/**
	 *  获得当天24点时间
	 * @return
	 */
	public static Date getTimesnight() {
	Calendar cal = Calendar.getInstance();
	cal.set(Calendar.HOUR_OF_DAY, 24);
	cal.set(Calendar.SECOND, 0);
	cal.set(Calendar.MINUTE, 0);
	cal.set(Calendar.MILLISECOND, 0);
	return  cal.getTime();
	}


	/**
	 *  获得本周一0点时间
	 * @return
	 */
	public static Date getTimesWeekmorning() {
	Calendar cal = Calendar.getInstance();
	cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
	cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
	return  cal.getTime();
	}


	/**
	 *  获得本周日24点时间
	 * @return
	 */
	public  static Date getTimesWeeknight() {
	Calendar cal = Calendar.getInstance();
	cal.setTime(getTimesWeekmorning());
	cal.add(Calendar.DAY_OF_WEEK, 7);
	return cal.getTime();
	}


	/**
	 *  获得本月第一天0点时间
	 * @return
	 */
	public static Date getTimesMonthmorning() {
	Calendar cal = Calendar.getInstance();
	cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
	cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
	return  cal.getTime();
	}


	/**
	 *  获得本月最后一天24点时间
	 * @return
	 */
	public static Date getTimesMonthnight() {
	Calendar cal = Calendar.getInstance();
	cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
	cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
	cal.set(Calendar.HOUR_OF_DAY, 24);
	return cal.getTime();
	}
	/**
	 * 时间加减操作
	 * @throws ParseException 
	 */
	public static Date timsUpd(Date d,int num) throws ParseException{
		
		SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
		Calendar date = Calendar.getInstance();
		date.setTime(d);
		date.set(Calendar.DATE, date.get(Calendar.DATE) + num);
		Date endDate = dft.parse(dft.format(date.getTime()));
		return endDate;
	}
	
	
}
